There is a need to determine dynamically the idle capacity of a packet communication channel in which the actual network nodes and links which form the channel cannot be predicted or controlled apriori. The Internet is such a network. The set of Internet nodes and links that form an Internet channel between a source node and a destination node anywhere in the world is unpredictable and depends on a number of variables such as the time the channel is formed and the state of spanning trees located in the various nodes that are selected as the channel is formed. Knowledge of the idle channel bandwidth at any given time is needed, for example, to allocate or reserve the bandwidth for different applications or for various purposes. It is also desirable to determine this idle bandwidth and the optimal window size on a channel that is in use, without significantly increasing the probability of channel overload and packet loss.
The effective bandwidth of a channel depends on the window size that is in use on the channel. Window size is defined as the maximum number of packets that can be in transit on a channel at any given time. One can think of the operation of a channel as a source node initially transmitting N packets, where N equals the window size, and thereafter transmitting one packet for each packet acknowledgment that is received from the destination node. In this way, one window's worth of packets are maintained in transit on the channel.
There is an optimal window size for every channel and this optimal size varies depending on channel load, among other things. When a channel is operating at below its optimal window size, queuing is not occurring at the nodes that form the channel and there is idle bandwidth available. A channel operating at above its optimal window size is experiencing queuing at the channel nodes. If the channel load is pushed too far, the queue of the worst performing node (the bottleneck node) in the channel will overflow and packet loss will be experienced.
To my knowledge, there is no known feasible way at the present time of dynamically determining the idle capacity of a channel. However, there are known methods of estimating idle capacity over a relatively large period of time by sending a large number of packets much greater that a typical window size. This characteristic of transmitting many windows worth of packets is what makes the known methods undesirable for dynamic use. Early methods of measuring idle channel capacity rely on sending packets from a source node at a constant rate and estimating performance from the arrival rate of acknowledgments and the number of packets lost. However, these methods are unreliable. At packet rates less than the processing rate of the bottleneck node in the channel, no queue is formed and performance is measured at less than the optimal performance of the channel. At packet rates even slightly greater than the processing rate of the bottleneck node, the queue quickly overloads and there is not a sustained queue in the channel from which reliable data can be obtained by use of these algorithms. Further, as mentioned, large numbers of packets are required, which detracts from their use dynamically.
Mathew Mathis addressed the problem of overload in the measuring process as described in his 1994 paper "Windowed Ping: An IP Layer Performance Diagnostic". Mathis uses a sliding window size control to plot the performance of a channel in terms of packets in transit (window size) versus packets delivered and lost. However, Mathis's method also requires the transmission of large numbers of packets at different window sizes to plot the static performance of the channel.
Both of these methods of estimating idle capacity require the transmission of many windows worth of packets. This consumes resources and may further the tendency of a channel to congest. Thus, the known methods are not suitable for dynamically determining or estimating channel bandwidth. Further, if the optimal window size is not being used, then there is idle channel time introduced at the bottleneck node of the channel as illustrated in FIG. 3 and this tends to worsen the accuracy of bandwidth estimates.